文档

Quick BI仪表板图表报错“... which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"

更新时间:
一键部署

问题描述

Quick BI仪表板图表报错“... which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"。

问题原因

由于MySQL在5.7.5及以上版本,开启了ONLY_FULL_GROUP_BY的设置,如果select 的字段不在 group by 中,
并且select 的字段未使用聚合函数(SUM,AVG,MAX,MIN等)的话,那么这条SQL查询是被MySQL认为非法的。

解决方案

解决方案一:使用函数ANY_VALUE()包含报错字段。它主要的作用就是抑制ONLY_FULL_GROUP_BY值被拒绝。
解决方案二:通过sql语句暂时性修改。去掉ONLY_FULL_GROUP_BY,重新设置值。

SET @@global.sql_mode  = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据库下执行:


SET sql_mode  = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

适用于

  • Quick BI
  • MySQL在5.7.5及以上版本
  • 本页导读